package demo04;

import java.util.ArrayList;
import java.util.Collections;

/*
 *  java.utils.Collections是个集合工具类，用来对集合进行操作，部分方法如下：
 *      public static <T> boolean addAll(Collection<T> c, T... elements)：往集合中添加一些元素
 *      public static void shuffle(List<?> list)：打乱集合顺序
 *      public static <T> void sort(List<T> list)：将集合中元素按照默认规则排序
 */
public class Demo01Collections {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        // 往集合添加单个元素
        list.add("a");
        list.add("b");
        list.add("c");

        // 往集合添加多个元素
        // public static <T> boolean addAll(Collection<T> c, T... elements)：往集合中添加一些元素
        Collections.addAll(list, "d", "e", "f", "g"); // 参数为可变参数，可以添加任意数量元素

        // public static void shuffle(List<?> list)：打乱集合顺序
        System.out.println("打乱前：" + list); // [a, b, c, d, e, f, g]
        Collections.shuffle(list);
        System.out.println("打乱后：" + list); // [d, g, c, f, e, a, b]
        Collections.shuffle(list);
        System.out.println("再打乱一次：" + list); // [c, d, f, a, b, g, e]
        System.out.println("================================");

        // public static <T> void sort(List<T> list)：将集合中元素按照默认规则排序
        ArrayList<Integer> list2 = new ArrayList<>();
        Collections.addAll(list2, 1, 3, 2);
        System.out.println("排序前：" + list2); // [1, 3, 2]
        Collections.sort(list2);
        System.out.println("排序后：" + list2); // [1, 2, 3]
        ArrayList<String> list3 = new ArrayList<>();
        Collections.addAll(list3, "c", "b", "a");
        System.out.println("排序前：" + list3); // [c, b, a]
        Collections.sort(list3);
        System.out.println("排序后：" + list3); // [a, b, c]
    }
}
